package com.ruyuan.eshop.order.api;

import com.ruyuan.eshop.common.core.JsonResult;
import com.ruyuan.eshop.customer.domain.request.CustomerReceiveAfterSaleRequest;
import com.ruyuan.eshop.customer.domain.request.CustomerReviewReturnGoodsRequest;
import com.ruyuan.eshop.order.domain.dto.LackDTO;
import com.ruyuan.eshop.order.domain.request.LackRequest;
import com.ruyuan.eshop.order.domain.request.RefundCallbackRequest;
import com.ruyuan.eshop.order.domain.request.RevokeAfterSaleRequest;

/**
 <p>
 订单中心-逆向售后业务接口
 </p>
 * 儒猿课堂: http://www.ruyuan2020.com
 * @Author zhonghuashishan
 * @Remark 有问题直接联系客服VX: ruyuan-1111 ，源码-笔记-技术交流群
 * @Version 1.0
 **/
public interface AfterSaleApi {

    /**
     <p>
     缺品
     </p>
     * 儒猿课堂: http://www.ruyuan2020.com
     * @Author zhonghuashishan
     * @Remark 有问题直接联系客服VX: ruyuan-1111 ，源码-笔记-技术交流群
     * @Version 1.0
     **/
    JsonResult<LackDTO> lackItem(LackRequest request);

    /**
     <p>
     取消订单支付退款回调
     </p>
     * 儒猿课堂: http://www.ruyuan2020.com
     * @Author zhonghuashishan
     * @Remark 有问题直接联系客服VX: ruyuan-1111 ，源码-笔记-技术交流群
     * @Version 1.0
     **/
    JsonResult<Boolean> refundCallback(RefundCallbackRequest payRefundCallbackRequest);

    /**
     <p>
     接收客服的审核结果
     </p>
     * 儒猿课堂: http://www.ruyuan2020.com
     * @Author zhonghuashishan
     * @Remark 有问题直接联系客服VX: ruyuan-1111 ，源码-笔记-技术交流群
     * @Version 1.0
     **/
    JsonResult<Boolean> receiveCustomerAuditResult(CustomerReviewReturnGoodsRequest customerReviewReturnGoodsRequest);

    /**
     <p>
     用户撤销售后申请
     </p>
     * 儒猿课堂: http://www.ruyuan2020.com
     * @Author zhonghuashishan
     * @Remark 有问题直接联系客服VX: ruyuan-1111 ，源码-笔记-技术交流群
     * @Version 1.0
     **/
    JsonResult<Boolean> revokeAfterSale(RevokeAfterSaleRequest request);

    /**
     <p>
     提供给客服系统查询售后支付单信息
     </p>
     * 儒猿课堂: http://www.ruyuan2020.com
     * @Author zhonghuashishan
     * @Remark 有问题直接联系客服VX: ruyuan-1111 ，源码-笔记-技术交流群
     * @Version 1.0
     **/
    JsonResult<Long> customerFindAfterSaleRefundInfo(CustomerReceiveAfterSaleRequest customerReceiveAfterSaleRequest);

}